import vnode from "./vnode.js";

console.log(vnode);
export default function h(sel,data,c){
  if (arguments.length != 3){
    throw new Error('参数传递不正确')
  }
  if (typeof c === 'string' || typeof c === 'number'){
    // h函数的c是文本内容
    return vnode(sel,data,undefined,c,undefined)
  } else if (Array.isArray(c)){
    // 收集children
    let children = []
    // 传递的是数组
    c.map(function (item){
      // 判断条件是否满足
      if (!(typeof item === 'object'&& item.hasOwnProperty('sel'))) throw new Error('第三个参数传递错误')
      children.push(item)
    })
    return vnode(sel,data,children,undefined,undefined)
  } else if (typeof c === 'object' && c.hasOwnProperty('sel')){
    // 形态惨3
    return vnode(sel,data,[c],undefined,undefined)
  } else {
    throw new Error('第三个参数传递错误')
  }
}